package com.pactera.madp.cp.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pactera.madp.common.core.util.R;
import com.pactera.madp.cp.api.entity.WorkEmployeeEntity;
import com.pactera.madp.cp.api.vo.contact.ContactInheritVO;
import com.pactera.madp.cp.api.vo.employee.EmployeeInheritVO;

/**
 * 在离职服务服务接口
 *
 * @author yushen.qi
 * @since 2021-07-19 15:08:13
 */
public interface EmployeeInheritService extends IService<WorkEmployeeEntity> {

    /**
     * 查询当前企业全部成员
     *
     * @param page 分页数据
     * @param name 成员名称
     * @param mobile 手机号
     * @param status 成员状态
     * @return
     */
   IPage<EmployeeInheritVO> getListByChoose(Page page, String name, String mobile, Integer status);

    /**
     * 查询员工名下对应客户
     *
     * @param id 用户id
     * @param page 分页数据
     * @return
     */
   IPage<ContactInheritVO>  getContactByUser(Integer id, Page page);

    /**
     * 客户继承
     *
     * @param oldWxUserId 原跟进成员的userid
     * @param newWxUserId 接替成员的userid
     * @param wxExternalUserid 客户的external_userid列表，每次最多分配100个客户
     * @return
     */
   R<Boolean> updateContact(String oldWxUserId, String newWxUserId, String[] wxExternalUserid);

    /**
     * 获取待分配的离职成员对应客户列表
     *
     * @param page 分页数据
     * @param cursor 分页游标
     * @return
     */
   R resignedUserToContact(Page page, String cursor);

    /**
     * 离职成员客户继承
     *
     * @param oldWxUserId 原跟进成员的userid
     * @param newWxUserId 接替成员的userid
     * @param wxExternalUserid 客户的external_userid列表，每次最多分配100个客户
     * @return
     */
   R resignedContactByUser(String oldWxUserId, String newWxUserId, String[] wxExternalUserid);

    /**
     * 分配离职成员的客户群
     *
     * @param groupId 客户群id 1-100
     * @param newWxUserId 新群主id
     * @return
     */
   R resignedGroupToUser(String[] groupId, String newWxUserId);

    /**
     * 查询群主离职的群
     *
     * @param page
     * @return
     */
   R groupStatus(Page page);

}
